package com.spark.invoicings.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 采购退货单
 */
@Data
@TableName("purchase_return_order")
public class PurchaseReturnOrder implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Integer purchaseReturnOrderId; // 采购退货单id
    private Integer returnStatusId; // 退货状态id
    private Integer supplierId; // 供应商id
    private Integer purchaseOrderId; // 采购单id
    private Integer outboundOrderId; // 出库单id
    private Date returnRequestDate; // 退货申请日期
    private Date returnApprovalDate; // 退货审批完成日期
    private String applicant; // 申请人
    private Integer returnReasonId; // 退货原因id
    private String remarks; // 备注
    private double totalRefundAmount; // 应退款总额
    private Integer totalReturnedQty; // 退货总数
    /**
     * 审批人
     * */
    private String approver;
    /**
     * 审批时间
     * */
    private String approvalTime;

    @TableField(exist = false)
    private List<PurchaseReturnDetails> purchaseReturnDetailsList;

    /**
     * 采购退货关联对象
     * @return
     */
    @TableField(exist = false)
    private ProcuredSupplier procuredSupplier;

    @TableField(exist = false)
    private Order order;

    @TableField(exist = false)
    private OutboundOrder outboundOrder;

    public List<PurchaseReturnDetails> getPurchaseReturnDetailsList() {
        return purchaseReturnDetailsList;
    }

    public void setPurchaseReturnDetailsList(List<PurchaseReturnDetails> purchaseReturnDetailsList) {
        this.purchaseReturnDetailsList = purchaseReturnDetailsList;
    }

    public String getApprover() {
        return approver;
    }

    public void setApprover(String approver) {
        this.approver = approver;
    }

    public String getApprovalTime() {
        return approvalTime;
    }

    public void setApprovalTime(String approvalTime) {
        this.approvalTime = approvalTime;
    }

    public ProcuredSupplier getProcuredSupplier() {
        return procuredSupplier;
    }

    public void setProcuredSupplier(ProcuredSupplier procuredSupplier) {
        this.procuredSupplier = procuredSupplier;
    }

    public Order getOrder() {
        return order;
    }

    public void setOrder(Order order) {
        this.order = order;
    }

    public OutboundOrder getOutboundOrder() {
        return outboundOrder;
    }

    public void setOutboundOrder(OutboundOrder outboundOrder) {
        this.outboundOrder = outboundOrder;
    }

    public Integer getPurchaseReturnOrderId() {
        return purchaseReturnOrderId;
    }

    public void setPurchaseReturnOrderId(Integer purchaseReturnOrderId) {
        this.purchaseReturnOrderId = purchaseReturnOrderId;
    }

    public Integer getReturnStatusId() {
        return returnStatusId;
    }

    public void setReturnStatusId(Integer returnStatusId) {
        this.returnStatusId = returnStatusId;
    }

    public Integer getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Integer supplierId) {
        this.supplierId = supplierId;
    }

    public Integer getPurchaseOrderId() {
        return purchaseOrderId;
    }

    public void setPurchaseOrderId(Integer purchaseOrderId) {
        this.purchaseOrderId = purchaseOrderId;
    }

    public Integer getOutboundOrderId() {
        return outboundOrderId;
    }

    public void setOutboundOrderId(Integer outboundOrderId) {
        this.outboundOrderId = outboundOrderId;
    }

    public Date getReturnRequestDate() {
        return returnRequestDate;
    }

    public void setReturnRequestDate(Date returnRequestDate) {
        this.returnRequestDate = returnRequestDate;
    }

    public Date getReturnApprovalDate() {
        return returnApprovalDate;
    }

    public void setReturnApprovalDate(Date returnApprovalDate) {
        this.returnApprovalDate = returnApprovalDate;
    }

    public String getApplicant() {
        return applicant;
    }

    public void setApplicant(String applicant) {
        this.applicant = applicant;
    }

    public Integer getReturnReasonId() {
        return returnReasonId;
    }

    public void setReturnReasonId(Integer returnReasonId) {
        this.returnReasonId = returnReasonId;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public double getTotalRefundAmount() {
        return totalRefundAmount;
    }

    public void setTotalRefundAmount(double totalRefundAmount) {
        this.totalRefundAmount = totalRefundAmount;
    }

    public Integer getTotalReturnedQty() {
        return totalReturnedQty;
    }

    public void setTotalReturnedQty(Integer totalReturnedQty) {
        this.totalReturnedQty = totalReturnedQty;
    }
}
